# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=linux-pam
pkgver=1.5.2
pkgrel=1
pkgdesc="Linux PAM (Pluggable Authentication Modules for Linux)"
url="https://www.kernel.org/pub/linux/libs/pam"
arch="all"
license="BSD-3-Clause"
depends_dev="gettext-dev"
makedepends="$depends_dev bison flex-dev autoconf automake libtool linux-headers"
options="suid !check"
subpackages="$pkgname-dev $pkgname-doc"
source="
	https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz

	base-auth.pamd
	base-account.pamd
	base-password.pamd
	base-session.pamd
	base-session-noninteractive.pamd
	other.pamd
	system-local-login.pamd
	system-login.pamd
	su.pamd
	"
builddir="$srcdir"/Linux-PAM-$pkgver

# secfixes:
#   1.5.1-r0:
#     - CVE-2020-27780

prepare() {
	default_prepare
	# disable insecure modules
	sed -e 's/pam_rhosts//g' -i modules/Makefile.am

	autoreconf -vif
}

build() {
	[ "$CLIBC" = "musl" ] && export ac_cv_search_crypt=no
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--libdir=/lib \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--disable-nls \
		--disable-db
	make
}

package() {
	make DESTDIR="$pkgdir" install

	# install our pam.d files
	mkdir "$pkgdir"/etc/pam.d
	for i in $source; do
		case $i in
		*.pamd)
			basename=$(echo $i | cut -d. -f1)
			cp "$srcdir"/$i "$pkgdir"/etc/pam.d/"$basename"
			;;
		esac
	done

	# delete pointless libtool archives.
	chgrp shadow "$pkgdir"/sbin/unix_chkpwd \
		&& chmod g+s "$pkgdir"/sbin/unix_chkpwd

	# we don't ship systemd
	rm -r "$pkgdir"/usr/lib/systemd
}

sha512sums="
fa16350c132d3e5fb82b60d991768fb596582639841b8ece645c684705467305ccf1302a0147ec222ab78c01b2c9114c5496dc1ca565d2b56bf315f29a815144  Linux-PAM-1.5.2.tar.xz
ea6a10957ba9ec50d982bfabafb35060426ac797936f874097b4fa7620b89fd2ba3be9757401f9b787956fb23879d8ef73676f7703e75fcef3dca0b9559c4167  base-auth.pamd
85462201a4044c7e170e617d39b0eceb4790abc6c0504999117548030a16d80a9d2078d1ad97690d7d346e6374201f0c52e792ccb08ce2b1c4bbf0cc2be96f5b  base-account.pamd
da5d9a361abfc5b705e01a8da3a2e6de3ba394a0814307a65ec5b6c88ddae199d54b4d443204bf770f8daccb990777b68a5da716fb756932cf21f9046c839540  base-password.pamd
b72bbce09f7a3f7da9bdaa2518cd4e44be9f343ab935eb8576d8d5d7d2a6b7d37040e98051e43cdf8027dda13fdca56e4d801f9ce6d1dcafd0f69bb94e9925cb  base-session.pamd
444e20046843057b17c0aac14d2b71a68923b989b3d8b478bbf684698673683186e928e5ca2e6cb9a1c76abc4248044a0e10ef6b06b3f51857106796ecce250d  base-session-noninteractive.pamd
d103ba06b2c4929171e09c845f9866539220cd20d8d56a03d25850342ef5eabe281e958dfe1eaefd550c00f9440e8700c1d74c88c3001f933134ca6fd7cb9b7b  other.pamd
83cc3d84ef5afded9afd4d347132901b9adcbd8b21be45b80d010370a2082e8388a713eb78d052944bc47b07fd7383edf18e2674d9d0545215cc45e14a2e14b1  system-local-login.pamd
3a05cdb4b1d9d2dc30bd091e69941e24f653df7f62acf577cff7ceb4f925cfde3412c8b48bf7aeeca9fd68fb50cbfe5b567f45a61338c9f496f68b6d079ad567  system-login.pamd
b512d691f2a6b11fc329bf91dd05ca9c589bbd444308b27d3c87c75262dedf6afc68a9739229249a4bd3d0c43cb1f871eecbb93c4fe559e0f38bdabbffd06ad7  su.pamd
"
